$(document).ready(function() {
	expExcelEvent();
});

/**
 * 解决使用jquery1.3以上版本时出现Malformed OGNL expression:f[]
 * [ognl.ParseException:Encountered " "]” “]的问题
 */
$.ajaxSettings.traditional = true;

/**
 * 为Array增加remove方法
 */
Array.prototype.remove = function(dx) {
	if (isNaN(dx) || dx > this.length) {
		return false;
	}
	for ( var i = 0, n = 0; i < this.length; i++) {
		if (this[i] != this[dx]) {
			this[n++] = this[i];
		}
	}
	this.length -= 1;
};

/**
 * 时间对象的格式化
 */
Date.prototype.format = function(format) {
	var o = {
		'M+' : this.getMonth() + 1,
		'd+' : this.getDate(),
		'h+' : this.getHours(),
		'm+' : this.getMinutes(),
		's+' : this.getSeconds(),
		'q+' : Math.floor((this.getMonth() + 3) / 3),
		'S' : this.getMilliseconds()
	};
	if (/(y+)/.test(format)) {
		format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
	}
	for ( var k in o) {
		if (new RegExp('(' + k + ')').test(format)) {
			format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
		}
	}
	return format;
};

/**
 * 计算相差天数
 *
 * @param startDate
 * @param endDate
 * @returns {number}
 * @constructor
 */
function getDateDiff(startDate, endDate) {
	var startTime = startDate.getTime();
	var endTime = endDate.getTime();
	var dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60 * 24);
	return dates;
}

/**
 * 获取星期几
 *
 * @param date
 * @returns {*}
 */
function getDayOfWeek(date) {
	var week = date.getDay();
	var weeks;
	if (i18n == 'zh_CN') {
		weeks = new Array("日", "一", "二", "三", "四", "五", "六");
	} else {
		weeks = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
	}
	return weeks[week];
}

/**
 * 日期，在原有日期基础上，增加days天数，默认增加1天
 *
 * @param date
 * @param days
 * @returns {Date}
 */
function addDate(date, days) {
	if (days == undefined) {
		days = 1;
	}
	var date = new Date(date);
	date.setDate(date.getDate() + days);
	return date;
}

/**
 * 日期月份/天的显示，如果是1位数，则在前面加上'0'
 *
 * @param arg
 * @returns {*}
 */
function getFormatDate(arg) {
	if (arg == undefined) {
		return '';
	}
	var re = arg + '';
	if (re.length < 2) {
		re = '0' + re;
	}
	return re;
}

/**
 * 字符串转日期
 *
 * @param dateStr
 * @returns {Date}
 */
function strToDate(dateStr) {
	return new Date(Date.parse(dateStr.replace(/-/g, "/")));
}

/**
 * 日期转字符串: yyyy-mm-dd
 *
 * @param date
 * @returns {string}
 */
function dateToStr(date) {
	var month = date.getMonth() + 1;
	var day = date.getDate();
	if (i18n == 'zh_CN') {
		return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
	} else {
		return getFormatDate(month) + '/' + getFormatDate(day) + '/' + date.getFullYear();
	}
}

/**
 * 日期转字符串: yyyy-mm-dd
 *
 * @param date
 * @returns {string}
 */
function dateToStr_zh_CN(date) {
	var month = date.getMonth() + 1;
	var day = date.getDate();
	return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
}

/**
 * 获取当前月的第一天
 */
function getCurrentMonthFirst(){
	var date=new Date();
	date.setDate(1);
	return date;
}
/**
 * 获取当前月的最后一天
 */
function getCurrentMonthLast(){
	var date = new Date();
	date.setMonth(date.getMonth()+1);
	date.setDate(0);
	return date;
}

/**
 * 重置表单查询表单
 */
function reset() {
	$('.easyui-textbox.textbox-f').textbox('clear');
	$('.combobox-f.combo-f.textbox-f').combobox('clear');
	$('.easyui-datebox.datebox-f.combo-f.textbox-f').datebox('clear');
	$('#overall').switchbutton('uncheck');
}

/**
 * 右下角消息提示
 * 
 * @param msg
 */
function showMsg(msg) {
	$.messager.show({
		title : '提示',
		msg : msg,
		timeout : 3000,// 3秒后关闭
		showType : 'slide'
	});
}

/**
 * 表单提交进度条
 */
function commitProgress() {
	$.messager.progress({
		text : '请求提交中...',
		// 每300毫秒更新一次进度
		interval : 300
	});
}

/**
 * 关闭进度条
 */
function closeProgress() {
	$.messager.progress('close');
}

/**
 * 显示保存返回信息
 * 
 * @param val
 * @param formwindow
 * @param datagrid
 */
function showSaveMsg(val, formwindow, datagrid) {
	try {
		var result = $.parseJSON(val);
		if (formwindow) {
			$('#' + formwindow).window('close');
		} else {
			$('#fw').window('close');
		}
		showMsg(result.msg);
		if (datagrid) {
			if (datagrid == 'noreload') {
			    return;
			} else {
				$('#' + datagrid).datagrid('reload');
			}
		} else {
			$('#dg').datagrid('reload');
		}
	} catch (error) {
		viewAjaxException(val);
	}
}

/**
 * 导出excel按钮事件
 */
function expExcelEvent() {
	$('#expExcel_mm').menu({
		onClick : function(item) {
			var url = $('#' + item.id).attr('url');
			expExcel(item.id, url);
		}
	});
}

/**
 * 下载excel文件
 * 
 * @param path
 */
function downloadXlsFile(path) {
	var expForm = $('#expForm');
	if (expForm.length > 0) {
		$(expForm).find("[name='path']").val(path);
		expForm.submit();// 表单提交
	} else {
		var form = $('<form>');// 定义一个form表单
		form.attr('id', 'expForm');
		form.attr('style', 'display:none');
		form.attr('target', '');
		form.attr('method', 'post');
		form.attr('action', ctx + '/util/downloadXlsFile.do');
		var input = $('<input>');
		input.attr('type', 'hidden');
		input.attr('name', 'path');
		input.attr('value', path);
		$('body').append(form);// 将表单放置在web中
		form.append(input);
		form.submit();// 表单提交
	}
}

function downloadFileUtil(path,oldName,newName) {
	var expForm = $('#expFileForm');
	if (expForm.length > 0) {
		$(expForm).find("[name='path']").val(path);
		$(expForm).find("[name='oldName']").val(oldName);
		$(expForm).find("[name='newName']").val(newName);
		expForm.submit();// 表单提交
	} else {
		var form = $('<form>');// 定义一个form表单
		form.attr('id', 'expFileForm');
		form.attr('style', 'display:none');
		form.attr('target', '');
		form.attr('method', 'post');
		form.attr('action', ctx + '/util/downloadFile.do');
		var inputPath = $('<input>');
		inputPath.attr('type', 'hidden');
		inputPath.attr('name', 'path');
		inputPath.attr('value', path);
		var inputOldName = $('<input>');
		inputOldName.attr('type', 'hidden');
		inputOldName.attr('name', 'oldName');
		inputOldName.attr('value', oldName);
		var inputNewName = $('<input>');
		inputNewName.attr('type', 'hidden');
		inputNewName.attr('name', 'newName');
		inputNewName.attr('value', newName);
		$('body').append(form);// 将表单放置在web中
		form.append(inputPath);
		form.append(inputOldName);
		form.append(inputNewName);
		form.submit();// 表单提交
	}
}

/**
 * 初始化form表单树
 */
function initFormTree(data) {
	$("#parentCodeEvent").combotree({
		animate: true,
		lines: true,
		data: data,
		onChange : function(newValue, oldValue) {
			var tree = $("#parentCodeEvent").combotree('tree');
			var node = tree.tree('getSelected');
			var level = node.attributes.level;
			$("#treeLevelEvent").numberbox('setValue', level + 1);
			$("#treeLevelEvent").numberbox('validate');
		}
	});
}

/**
 * 设置combo选项为空时的value=''，否则表单中的combo选项为null，不能正常保存
 * 
 * @param formId
 */
function setComboNull(formId) {
	var combos = $('#' + formId + ' .easyui-combobox.combobox-f.combo-f');
	for ( var i = 0; i < combos.length; i++) {
		var combo = combos[i];
		var comboText = $(combo).combobox('getText');
		if (comboText == null || comboText == '' || comboText.length == 0) {
			$(combo).combobox('setValue', '');
		}
	}
}
